import { Module, MiddlewareConsumer } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
// import { NestjsModule } from './nestjs/nestjs.module';
// import { TypeOrmModule } from '@nestjs/typeorm';
// import { nest } from './db/modal/nest.entity';
// import { nesttest } from './db/modal/nesttest.entity';
// import { GoodsMaterial } from './db/modal/goods.entity';
import { ScheduleModule } from '@nestjs/schedule';
import { ScheduleService } from './schedule/schedule.service';
// import { RedisModule } from '@nestjs-modules/ioredis';
import { TestMiddleware, testMiddlewarefn } from './middleware/test.middleare';
import { RedisModule } from './redis/redis.module';

@Module({
  imports: [
    // NestjsModule,
    ScheduleModule.forRoot(),
    RedisModule.forRoot([], {}),
    // RedisModule.forRoot({
    //   config: {
    //     url: 'redis://localhost:6379',
    //   },
    // }),
    // TypeOrmModule.forRoot({
    //   type: 'mysql',
    //   host: 'frontend-mysql-mysqlha-0.frontend-mysql-mysqlha.frontend.svc.cluster.local',
    //   port: 3306,
    //   username: 'root',
    //   password: 'J6yXJvsSHYUg',
    //   database: 'cloud',
    //   entities: [GoodsMaterial],
    // }),
    // TypeOrmModule.forRoot({
    //   type: 'mysql',
    //   host: 'localhost',
    //   port: 3306,
    //   username: 'root',
    //   password: '123456789',
    //   database: 'test_nest',
    //   entities: [nest, nesttest],
    //   name: 'nest',
    // }),
  ],
  controllers: [AppController],
  providers: [AppService, ScheduleService],
})
export class AppModule {
  configure(consumer: MiddlewareConsumer) {
    consumer.apply(TestMiddleware, testMiddlewarefn)
    .forRoutes('*'); // 限制使用中间件的路由
  }
}
